<?php

/**
 * cronogramaC actions.
 *
 * @package    cronos-doctrine
 * @subpackage cronogramaC
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class cronogramaCActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
      
      if(!$request->getParameter('zona_id')){
        $zona_id = 11;  // zona A3
      }else {
        $zona_id = $request->getParameter('zona_id');
      }
      
      $this->servicio_tipo_id = $request->getParameter('servicio_tipo_id');
      $this->semana_id = $request->getParameter('semana_id');
      
      
      $sem = new Semana();
      $this->semanas = $sem->getSemana();
      $cantidad_semanas = count ($this->semanas);
      
      $diaS = new DiaSemana();
      $this->diasS = $diaS->getDiaSemana();
      
      $cronogramaCamionetas  = new CronogramaCamioneta();
      $this->cronogramaCamionetas = $cronogramaCamionetas->getCronogramas($this->servicio_tipo_id);
      
      $zonas  = new Zona();
      $this->zonas = $zonas->getZonas();
      
      $tur = new Turno();
      $this->turnosS = $tur->getTurno();
      $cantidad_turnosS = count($this->turnosS);
      
      $this->statusLlamada  = $statusLlamada = 1; //Activo
      
      $cam = new Camioneta();
      if($this->servicio_tipo_id){
          $this->camionetas = $cam->getCamioneta_por_servicio($this->servicio_tipo_id);
          
      }else {
        $this->camionetas = $cam->getCamionetas();
        
        
      }
      $cantidad_camionetas = count($this->camionetas);
      $this->dias_laborables = $dias_laborables= 5.5;
      $this->cantidad_semanas = $cantidad_semanas;
      $this->cantidad_camionetas = $cantidad_camionetas;
      $this->cantidad_turnosS = $cantidad_turnosS;
      $this->rutas_disponibles = $cantidad_camionetas * $cantidad_turnosS * $cantidad_semanas * $dias_laborables;
      $this->tableTurno = "";
      
      
      
      /*$this->usuariosActivosZonas = $usuario->getUsuarioZona($zona_id, $statusLlamada);
      
      
      $this->cantidadActivosZonas = count($this->usuariosActivosZonas);
      $this->porcentajeCliente = (($this->cantidadActivosZonas * 100)/ $this->cantidadActivos);
      */
      
//      $this->cronograma_camionetas = Doctrine_Core::getTable('CronogramaCamioneta')
//      ->createQuery('a')
//      ->execute();
  }

  public function executeNew(sfWebRequest $request)
  {
    
//    $cronogramaCamiontaNew = new CronogramaCamioneta();
//    $cronogramaCamiontaNew->setSemanaId($request->getParameter('semana_id'));
//    $cronogramaCamiontaNew->setTurnoId($request->getParameter('turno_id'));
//    $cronogramaCamiontaNew->setDiaSemanaId($request->getParameter('dia_semana_id'));
//    $cronogramaCamiontaNew->setCamionetaId($request->getParameter('camioneta_id'));      
      
    /*$this->form = new CronogramaCamionetaForm();
    
    $this->form->setWidget('semana_id', new sfWidgetFormInputHidden(array(),array('value' => $request->getParameter('semana_id'))));
    $this->form->setWidget('turno_id', new sfWidgetFormInputHidden(array(),array('value' => $request->getParameter('turno_id'))));
    $this->form->setWidget('dia_semana_id', new sfWidgetFormInputHidden(array(),array('value' => $request->getParameter('dia_semana_id'))));
    $this->form->setWidget('camioneta_id', new sfWidgetFormInputHidden(array(),array('value' => $request->getParameter('camioneta_id'))));
  
     */
      $counts           = $request->getParameter('count');
      $valorCamioneta   = $request->getParameter('valorCamioneta');
      $valorSemana      = $request->getParameter('valorSemana');
      $valorTurno      = $request->getParameter('valorTurno');
      $valorDia      = $request->getParameter('valorDia');
      $valorZona      = $request->getParameter('valorZona');
      $servicio_tipo_id = $request->getParameter('servicio_tipo_id');
      $semana_id      = $request->getParameter('semana_id');
      
      Doctrine::getTable('CronogramaCamioneta')
              ->createQuery()
              ->delete()
              ->where('id > ? ', 0)
              ->addWhere('servicio_tipo_id= ?', $servicio_tipo_id)
              ->addWhere('semana_id= ?', $semana_id)
              ->addWhere('empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
              ->execute();
      
      /*
       foreach ($valorZona as $valor){
       
        echo $semana_id."<br>";
        }
      exit;
      */
      
      
      foreach ($counts as $count){
          
          if($valorZona[$count]){
          $cronogramaCamioneta = new CronogramaCamioneta();
          $cronogramaCamioneta->setEmpresaId($this->getUser()->getAttribute('agente_user_empresa_id'));
          $cronogramaCamioneta->setServicioTipoId($servicio_tipo_id);
          $cronogramaCamioneta->setCamionetaId($valorCamioneta[$count]);
          $cronogramaCamioneta->setSemanaId($valorSemana[$count]);
          $cronogramaCamioneta->setTurnoId($valorTurno[$count]);
          $cronogramaCamioneta->setDiaSemanaId($valorDia[$count]);
          $cronogramaCamioneta->setZonaId($valorZona[$count]);
          $cronogramaCamioneta->save();
              
          //echo 'Camioneta='.$valorCamioneta[$count].' valorSemana= '.$valorSemana[$count].' valorTurno= '.$valorTurno[$count].' valorDia= '.$valorDia[$count].' valorZona= '.$valorZona[$count];
          //echo "<br>";
          
          }
      }

        
        
      
      $this->redirect("cronogramaC/index?servicio_tipo_id=".$servicio_tipo_id."&semana_id=".$semana_id);
      
      }
     
  
 

  public function executeCreate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST));

    $this->form = new CronogramaCamionetaForm();

    $this->processForm($request, $this->form);

    $this->setTemplate('new');
  }

  public function executeEdit(sfWebRequest $request)
  {
    $this->forward404Unless($cronograma_camioneta = Doctrine_Core::getTable('CronogramaCamioneta')->find(array($request->getParameter('id'))), sprintf('Object cronograma_camioneta does not exist (%s).', $request->getParameter('id')));
    $this->form = new CronogramaCamionetaForm($cronograma_camioneta);
    
    $this->form->setWidget('semana_id', new sfWidgetFormInputHidden(array(),array('value' => $cronograma_camioneta->getSemanaId())));
    $this->form->setWidget('turno_id', new sfWidgetFormInputHidden(array(),array('value' => $cronograma_camioneta->getTurnoId())));
    $this->form->setWidget('dia_semana_id', new sfWidgetFormInputHidden(array(),array('value' => $cronograma_camioneta->getDiaSemanaId())));
    $this->form->setWidget('camioneta_id', new sfWidgetFormInputHidden(array(),array('value' => $cronograma_camioneta->getCamionetaId())));
  }

  public function executeUpdate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
    $this->forward404Unless($cronograma_camioneta = Doctrine_Core::getTable('CronogramaCamioneta')->find(array($request->getParameter('id'))), sprintf('Object cronograma_camioneta does not exist (%s).', $request->getParameter('id')));
    $this->form = new CronogramaCamionetaForm($cronograma_camioneta);

    $this->processForm($request, $this->form);

    $this->setTemplate('edit');
  }

  public function executeDelete(sfWebRequest $request)
  {
    $request->checkCSRFProtection();

    $this->forward404Unless($cronograma_camioneta = Doctrine_Core::getTable('CronogramaCamioneta')->find(array($request->getParameter('id'))), sprintf('Object cronograma_camioneta does not exist (%s).', $request->getParameter('id')));
    $cronograma_camioneta->delete();

    $this->redirect('cronogramaC/index');
  }

  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
      $cronograma_camioneta = $form->save();

      $this->redirect('cronogramaC/edit?id='.$cronograma_camioneta->getId());
    }
  }
  
  public function executeReport(sfWebRequest $request)
  {
    $camionetas = new Camioneta();
    $this->camionetas = $camionetas->getCantidad();
    
    $turnos = new Turno();
    $this->turnos = $turnos->getCantidad();
    
    $semanas = new Semana();
    $this->semanas = $semanas->getCantidad();
    
    $this->diasLaborables = 5.5;
    
    $this->rutasDisponibles = $this->camionetas * $this->turnos * $this->semanas * $this->diasLaborables;
  }
  
  
  public function executeVaciar(sfWebRequest $request)
  {
      $cronogramaCamioneta = new CronogramaCamioneta();
      $cronogramaCamioneta->vaciarCronogramas();
      $this->redirect('cronogramaC/index');
  }
}
